package com.guodi.model.utils;

import lombok.extern.slf4j.Slf4j;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

/**
 * 脚本引擎工具类
 */
@Slf4j
public class ScriptEngineUtil {
    /**
     * 计算公式，使用js脚本引擎
     * @param formula 可执行的公式
     * @author 陈宏成
     * @date   2021/12/22
     */
    public static String calculationFormula(String formula) {
        try {
            ScriptEngineManager manager = new ScriptEngineManager();
            ScriptEngine engine = manager.getEngineByName("js");
            Object eval = engine.eval(formula);
            return eval.toString();
        }catch (ScriptException exception){
            log.error(String.format("公式：%s 计算错误",formula),exception);
            return null;
        }
    }
}
